<?php 

include_once dirname(__FILE__)."/../common/common.php";
include_once("AccessTokenUtil.php");

/**
* 微信接口辅助工具
*/
class WeixinUtil 
{

	// 1.获取应用授权
	static function getAccessToken(){

		return AccessTokenUtil::getAccessToken();

	}


	// 发送模版消息
	static function sendTemplateMessage($message){

		$access_token=WeixinUtil::getAccessToken();

		// 获取模版消息接口地址
		$post_url=getConfig("url_message_send");

		$post_url = $post_url."?access_token=".$access_token;

		$result = _post_remote_curl($post_url, json_encode($message));

		return json_decode($result,true);
	}

	// 2.创建菜单
	static function createMenu($json_menu){

		$access_token=WeixinUtil::getAccessToken();

		if(empty($access_token)) {

			echo "access_token is null!";

			die();
		}

		if(empty($json_menu)){

			echo "json_menu is null";

			die();
		}

		$url_api=getConfig("url_create_menu");

		$url = $url_api."?access_token=".$access_token;

		$result = _post_remote_curl($url, $json_menu);

		var_dump("result:".$result);

	}

	// 3.使用 code 获取用户信息访问授权
	private static function getUserInfoAccessToken($code){

		$app_id=getConfig("app_id");
		$app_secret=getConfig("app_secret");

		$url_api=getConfig("url_sns_oauth2");

		$url=$url_api."?appid=$app_id&secret=$app_secret&code=$code&grant_type=authorization_code";

		$result = _get_remote_curl($url);

//        print_log($result);

		if(empty($result)){

			echo "result is null";

			return "";
		}

		$json_data=json_decode($result);

		return $json_data;

	}


	// 4.使用 code 获取用户信息
	static function getUerInfo($code){

		$json_data=WeixinUtil::getUserInfoAccessToken($code);

//		print_log($json_data);

		//使用 token 获取用户信息
		$token=isset($json_data->access_token)?$json_data->access_token:"";
		$openid=isset($json_data->openid)?$json_data->openid:"";

		if(empty($token) || empty($openid)){

			print_r($json_data);

			return "";
		}

		$url_api=getConfig("url_sns_userinfo");

		$url=$url_api."?access_token=$token&openid=$openid";

        $result=_get_remote_curl($url);

		$user_info=json_decode($result,true);

		return $user_info;

	}
	
	

}

